// Project: Salient
// http://salient.codeplex.com
// 
// Copyright 2010, Sky Sanders <sky at skysanders.net>
// Dual licensed under the MIT or GPL Version 2 licenses.
// http://salient.codeplex.com/license
// 
// Date: April 25 2010 

#region

using System;
using Salient.Reflection;

#endregion

namespace Salient.Management
{
    /// <summary>
    /// A DTO for WMI Query
    /// </summary>
    [Descriptor("Win32_Process", typeof (Win32Process))]
    public class Win32Process : WmiObject
    {
        ///<summary>
        ///</summary>
        public string Caption { get; set; }
        ///<summary>
        ///</summary>
        public string CommandLine { get; set; }
        ///<summary>
        ///</summary>
        public string CreationClassName { get; set; }
        ///<summary>
        ///</summary>
        public DateTime CreationDate { get; set; }
        ///<summary>
        ///</summary>
        public string CSCreationClassName { get; set; }
        ///<summary>
        ///</summary>
        public string CSName { get; set; }
        ///<summary>
        ///</summary>
        public string Description { get; set; }
        ///<summary>
        ///</summary>
        public string ExecutablePath { get; set; }
        ///<summary>
        ///</summary>
        public DateTime ExecutionState { get; set; }
        ///<summary>
        ///</summary>
        public string Handle { get; set; }
        ///<summary>
        ///</summary>
        public uint HandleCount { get; set; }
        ///<summary>
        ///</summary>
        public DateTime InstallDate { get; set; }
        ///<summary>
        ///</summary>
        public ulong KernelModeTime { get; set; }
        ///<summary>
        ///</summary>
        public uint MaximumWorkingSetSize { get; set; }
        ///<summary>
        ///</summary>
        public uint MinimumWorkingSetSize { get; set; }
        ///<summary>
        ///</summary>
        public string Name { get; set; }
        ///<summary>
        ///</summary>
        public string OSCreationClassName { get; set; }
        ///<summary>
        ///</summary>
        public string OSName { get; set; }
        ///<summary>
        ///</summary>
        public ulong OtherOperationCount { get; set; }
        ///<summary>
        ///</summary>
        public ulong OtherTransferCount { get; set; }
        ///<summary>
        ///</summary>
        public uint PageFaults { get; set; }
        ///<summary>
        ///</summary>
        public uint PageFileUsage { get; set; }
        ///<summary>
        ///</summary>
        public uint ParentProcessId { get; set; }
        ///<summary>
        ///</summary>
        public uint PeakPageFileUsage { get; set; }
        ///<summary>
        ///</summary>
        public ulong PeakVirtualSize { get; set; }
        ///<summary>
        ///</summary>
        public uint PeakWorkingSetSize { get; set; }
        ///<summary>
        ///</summary>
        public uint Priority { get; set; }
        ///<summary>
        ///</summary>
        public ulong PrivatePageCount { get; set; }
        ///<summary>
        ///</summary>
        public uint ProcessId { get; set; }
        ///<summary>
        ///</summary>
        public uint QuotaNonPagedPoolUsage { get; set; }
        ///<summary>
        ///</summary>
        public uint QuotaPagedPoolUsage { get; set; }
        ///<summary>
        ///</summary>
        public uint QuotaPeakNonPagedPoolUsage { get; set; }
        ///<summary>
        ///</summary>
        public uint QuotaPeakPagedPoolUsage { get; set; }
        ///<summary>
        ///</summary>
        public ulong ReadOperationCount { get; set; }
        ///<summary>
        ///</summary>
        public ulong ReadTransferCount { get; set; }
        ///<summary>
        ///</summary>
        public uint SessionId { get; set; }
        ///<summary>
        ///</summary>
        public string Status { get; set; }
        ///<summary>
        ///</summary>
        public DateTime TerminationDate { get; set; }
        ///<summary>
        ///</summary>
        public uint ThreadCount { get; set; }
        ///<summary>
        ///</summary>
        public ulong UserModeTime { get; set; }
        ///<summary>
        ///</summary>
        public ulong VirtualSize { get; set; }
        ///<summary>
        ///</summary>
        public string WindowsVersion { get; set; }
        ///<summary>
        ///</summary>
        public ulong WorkingSetSize { get; set; }
        ///<summary>
        ///</summary>
        public ulong WriteOperationCount { get; set; }
        ///<summary>
        ///</summary>
        public ulong WriteTransferCount { get; set; }
    }
}